package likouJava;

public class 验证二叉搜索树 {
    public boolean isValidBST(TreeNode root) {

        return isValid(root, Long.MIN_VALUE, Long.MAX_VALUE);
    }

    private boolean isValid(TreeNode node, long minValue, long maxValue) {
        //递归判断是否符合
        if(node == null)return true;

        //当前节点需要在min max范围里面
        if(node.val <= minValue || node.val >= maxValue){
            return false;
        }

        return isValid(node.left, minValue, node.val) && isValid(node.right, node.val, maxValue);
    }

}
